rdbms: clean up DBO_TRX behavior for onTransactionPreCommitOrIdle()
* Make sure cancelled onTransactionPreCommitOrIdle() callbacks do not
run if a transaction round is rolled back and then a second round is
committed. LoadBalancer::rollbackMasterChanges() now always calls
rollback(), which in turn always cleans up such callbacks.
* Remove error logging for rollback() calls when trxLevel = 0; this is
harmless and is sometimes hard to avoid in error handling anyway.
* Add more related unit tests.
Change-Id: I6bdefe8bf8b6630fc252b5bbafe4808758ba1684